Over the past several years, mobile device technologies have improved dramatically. Existing cell phones, PDAs, combinations of these, and other mobile devices have come to exhibit significant computing, storage, and connectivity capabilities.
Currently, new services are being deployed that mobile users can access using the devices just mentioned. Some of these services, such as web browsing on mobile devices, are independent of the user location while the client software and protocols used to access the services are standardized. Other services, such as accessing local vending machines and making payments using personal devices, could require custom software to be installed on the mobile device. Such custom software could for example convey the user's dietary restrictions, user's health conditions such as glucose and salt levels, snacking preferences, membership status in a frequent snacker's club, discount coupons, pricing information, etc. Another example in the latter category is an environmental display service, which allows mobile users to display information on large, public screens, and use their mobile devices to control these presentations.
Clearly, it is impossible to provision mobile devices with the client software needed for accessing all of types of services in the genres just discussed since the services may become available after the device is manufactured and also because there may be limited room to hold software for all services that the user may encounter. Mobile devices may have to use different versions of the same client software for accessing the same service from different servers, for a variety of reasons related to the server hardware, maintenance costs, etc. Even more importantly, when new services are rolled out, it becomes prohibitively expensive to automatically fully re-provision mobile devices that are already out in the field with the software necessary to use these new services. Finally, asking users to download and install the client software manually is inconvenient and error-prone.
Currently, mobile devices tend to be provisioned with the software necessary for accessing a limited number of services, while client software is usually made available for installation when mobile users subscribe to a new service or when they first access a new service. In this context, given that mobile device cannot store all the software they will potentially ever need to use due to their limited resources, a need has been recognized in connection with optimizing the usage of mobile device resources for storing or on-demand loading of the client software required for accessing public services available locally.